use std::net::{IpAddr, SocketAddr};

///替换内网地址
/// 如果是内网地址,则进行替换,否则返回当前地址
pub fn replace_intranet_address(mut addr: SocketAddr, replace: &IpAddr) -> SocketAddr {
	match addr.ip() {
		IpAddr::V4(ad) if ad.is_private() => addr.set_ip(*replace),
		_ => {}
	}

	addr
}

///组合一个SocketAddr..如果这个地址是内网,则替换为指定的地址
pub fn combination_address_replace(addr: IpAddr, replace: &IpAddr, port: u16) -> SocketAddr {
	match addr {
		IpAddr::V4(ad) if ad.is_private() => (*replace, port).into(),
		_ => (addr, port).into(),
	}
}
